iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0

關於分散式系統的節點,有時候不同節點之間的物理距離實際上是很遠的,對於資料的存取,我們會想要盡量追求服務使用上的低延遲,於是會優先選擇比較靠近的服務節點做使用。

就好比身在台灣,如果使用的服務有亞洲伺服器可以選,通常不會去使用歐洲或美洲的伺服器來使用服務。

因此系統就需要有個判斷節點遠近的機制,那麼就是snitch,在幫CASSANDRA/SCYLLA處理這個判斷。

由於副本的設置,同樣一份資料可能分別放在不同節點,而snitch會幫連線進來的使用者,挑選資料存在而且是最近的節點,從那個節點做資料的存取。

在一開始對於各種架構配置的策略不同,所要設定的snitch也需要不同的策略,我們談的架構配置,是以一個cluster為單位,因此在同一個cluster之下,設定的snitch策略只有一種。

而CASSANDRA 和 SCYLLA 所支援的snitch策略會有些不同,CASSANDRA比較多一些。

CASSANDRA

  • Dynamic snitching
  • SimpleSnitch
  • RackInferringSnitch
  • PropertyFileSnitch
  • GossipingPropertyFileSnitch
  • Ec2Snitch
  • Ec2MultiRegionSnitch
  • GoogleCloudSnitch
  • CloudstackSnitch

SCYLLA

  • SimpleSnitch
  • RackInferringSnitch
  • GossipingPropertyFileSnitch
  • Ec2Snitch
  • Ec2MultiRegionSnitch
  • GoogleCloudSnitch

以下簡單介紹幾個常見snitch:

SimpleSnitch:

如果是規模比較小的狀況,沒有特別設定datacenter、rack(或者是說1 DC、1 rack),就可以使用這個snitch策略,因為它不會特別去辨識節點所在的datacenter和rack資訊。

RackInferringSnitch:

根據節點的IP分配位置,判斷節點所屬的DC和rack。

GossipingPropertyFileSnitch:

根據設定檔內的定義資訊,每個節點所屬的DC和rack做處理。
設定檔位置:/etc/scylla/cassandra-rackdc.properties

Ec2Snitch、Ec2MultiRegionSnitch

提供在AWS環境使用的snitch。

GoogleCloudSnitch

提供在GCP環境使用的snitch。



上一篇
Day17. gossip
下一篇
Day19. 環境結構(Ring Architecture)
系列文
scylla 從零開始攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言